package math;

public class Power {

    /**
     * 判断非负数是否为2的幂次
     *
     * @param n
     * @return
     */
    public static boolean is2Power(int n) {
        // 二进制数只有一个1就是2的幂次
        return (n & (n - 1)) == 0;
    }

    /**
     * 判断非负数是否为4的幂次
     *
     * @param n
     * @return
     */
    public static boolean is4Power(int n) {
        // 二进制数只有一个1就是2的幂次 && 唯一的1在从左往右的奇数位置上

        return (n & (n - 1)) == 0 && (n & 0x55555555) != 0;
    }
}
